6  Glossary 名词解释

NOTE: 以下概念均与 FPGA 和 CFU-playground 有关 (多数定义为 GPT 生成).

6.1 Submodules 用到的核心子模块

该项目重度使用了以下开源项目, FPGA 开源是一个很大的工程, 感谢所有开源者!

  • verilator: 将 verilog 代码变成 C++ 代码, 然后编译并运行在 CPU 上进行仿真, 模拟出时钟、寄存器逻辑、外设交互等行为.

  • iverilog (Icarus Verilog): 也是仿真 (但不输出 C 代码):

    iverilog -o blink.vvp blink.v blink_tb.v
    # 生成 vcd 文件可配合 GTKWave 查看波形
    vvp blink.vvp
  • openFPGALoader: 用于将比特流烧录到 FPGA (但不能调试).

    # 示例:
    openFPGALoader -b arty arty_bitstream.bit      # SRAM 加载
    openFPGALoader -b arty -f arty_bitstream.bit   # 写入 flash
  • openocd: Open On-Chip Debugger. 用于调试 FPGA 的工具. 支持 JTAG 接口.

  • yosysHQ (Yosys Open SYnthesis Suite Headquarters): yyds!! 一个开源的 EDA 工具链. 子项目包括:

    • icestorm: 用于针对 Lattice iCE40 FPGA 实现完全的端到端开源流程, 从 Verilog 到 bitstream, 再烧写到 FPGA 板卡上. 以下每一个命令都是一个单独的 repo!!

      # yosys 综合 (将 verilog 转换为网表 .json)
      yosys -p 'synth_ice40 -top blink -json blink.json' blink.v
      # nextpnr 布局布线 (生成 bitstream 的中间文件 .asc)
      nextpnr-ice40 --up5k --json blink.json --pcf blink.pcf --asc blink.asc
      # icepack 打包 (生成 bitstream .bin)
      icepack blink.asc blink.bin
      # icesprog 烧写 (将 bitstream 写入 FPGA)
      sudo icesprog blink.bin
  • SpinalHDL: 一个基于 Scala 的硬件描述语言 (HDL), 用于生成 Verilog 代码. SpinalHDL 提供了更高级的抽象和更强大的功能, 使得硬件设计更加灵活和可扩展.